package com.xhb.biz.feign;

import feign.*;

import java.util.Map;

/**
 * 用户收藏夹和收藏数据同步至管理端的接口
 *
 * @author tanyukun
 */
public interface UserCollectUploadService {

    /**
     * 新增用户收藏夹
     *
     * @param headers 请求头
     * @param params  转成 JSON 的参数
     * @return
     */
    @RequestLine("PUT /browser/userCollectGroup/add")
    @Body("{params}")
    String addUserCollectGroup(@HeaderMap Map<String, Object> headers,
                               @Param("params") String params) throws RuntimeException;

    /**
     * 修改用户收藏夹
     *
     * @param headers 请求头
     * @param params  转成 JSON 的参数
     * @return
     */
    @RequestLine("POST /browser/userCollectGroup/update")
    @Body("{params}")
    String updateUserCollectGroup(@HeaderMap Map<String, Object> headers,
                               @Param("params") String params) throws RuntimeException;

    /**
     * 新增用户收藏夹
     *
     * @param headers 请求头
     * @param id      收藏夹id
     * @return
     */
    @RequestLine("DELETE /browser/userCollectGroup/delete/{id}")
    String delUserCollectGroup(@HeaderMap Map<String, Object> headers,
                               @Param("id") String id) throws RuntimeException;

    /**
     * 新增用户收藏
     *
     * @param headers 请求头
     * @param params  转成 JSON 的参数
     * @return
     */
    @RequestLine("PUT /browser/userCollect/add")
    @Body("{params}")
    String addUserCollect(@HeaderMap Map<String, Object> headers,
                          @Param("params") String params) throws RuntimeException;

    /**
     * 修改用户收藏
     *
     * @param headers 请求头
     * @param params  转成 JSON 的参数
     * @return
     */
    @RequestLine("POST /browser/userCollect/update")
    @Body("{params}")
    String updateUserCollect(@HeaderMap Map<String, Object> headers,
                             @Param("params") String params) throws RuntimeException;

    /**
     * 删除用户收藏
     *
     * @param headers 请求头
     * @param id      用户收藏id
     * @return
     */
    @RequestLine("DELETE /browser/userCollect/delete/{id}")
    String delUserCollect(@HeaderMap Map<String, Object> headers,
                          @Param("id") String id) throws RuntimeException;

}
